perm filename FLAT.LSP[W82,JMC]2 blob
sn#641715 filedate 1982-02-16 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 EKL Done.
C00015 ENDMK
C⊗;
EKL Done.
proof?
* proof?
* Done.
LISPAX read in
proof?
* FLAT started.
*
*
* 2. ∀X U.FLAT(X,U)=IF ATOM X THEN X~U ELSE FLAT(CAR X,FLAT(CDR X,U))
deps: NIL
*
*
* 5. ∀X.FLATTEN(X)=IF ATOM X THEN LIST(X) ELSE FLATTEN(CAR X)*FLATTEN(CDR X)
deps: NIL
*
* failed to derive
∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y)
cannot prove the following:
(∀U.LISTP FLAT(Y18,U))∧(∀U.LISTP FLAT(X41,U))⊃(λX.TRUE)(X41~Y18)
* failed to derive
(∀U V.LISTP U*V)⊃(LISTP FLATTEN(X)∧LISTP FLATTEN(Y)⊃(λX.TRUE)(X~Y))
cannot prove the following:
(∀U V.LISTP U*V)∧LISTP FLATTEN(Y)∧LISTP FLATTEN(X)⊃(λX.TRUE)(X~Y)
*
* 8. (∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(λX.TRUE)(X~Y))⊃(∀X U.FLAT(X,U)=FLATTEN(X)*U)
deps: NIL
* 9. (∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)
deps: (9)
* 10. FLAT(X,FLAT(Y,U))=FLAT(X,FLATTEN(Y)*U)
deps: (9)
* 11. ∀U.FLAT(X,FLAT(Y,U))=FLAT(X,FLATTEN(Y)*U)
deps: (9)
* 12. (∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(∀U.FLAT(X,FLAT(Y,U))=FLAT(X,FLATTEN(Y)*U))
deps: NIL
* 13. ∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(∀U.FLAT(X,FLAT(Y,U))=FLAT(X,FLATTEN(Y)*U))
deps: NIL
* failed to taut
((∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃(λX.TRUE)(X~Y))⊃
(∀X U.FLAT(X,U)=FLATTEN(X)*U))∧
(∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(∀U.FLAT(X,FLAT(Y,U))=FLAT(X,FLATTEN(Y)*U)))⊃
(∀X U.FLAT(X,U)=FLATTEN(X)*U)
cannot prove the following:
(∀X1 Y1.(∀U4.FLAT(X1,U4)=FLATTEN(X1)*U4)∧(∀U4.FLAT(Y1,U4)=FLATTEN(Y1)*U4)⊃
(∀U4.FLAT(X1,FLAT(Y1,U4))=FLAT(X1,FLATTEN(Y1)*U4)))⊃
(∀X1 Y1.(∀U4.FLAT(X1,U4)=FLATTEN(X1)*U4)∧(∀U4.FLAT(Y1,U4)=FLATTEN(Y1)*U4)⊃
(λX2.TRUE)(X1~Y1))∨(∀X1 U5.FLAT(X1,U5)=FLATTEN(X1)*U5)
* 14. (∀X.ATOM X⊃(∀U.FLAT(X,U)=FLATTEN(X)*U))∧
(∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(λX.TRUE)(X~Y))⊃(∀X U.FLAT(X,U)=FLATTEN(X)*U)
deps: NIL
* 15. (∀X.ATOM X⊃(∀U.X~U=LIST(X)*U))∧
(∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(λX.TRUE)(X~Y))⊃(∀X U.FLAT(X,U)=FLATTEN(X)*U)
deps: NIL
* 16. (∀X.ATOM X⊃(∀U.X~U=LIST(X)*U))∧
(∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(λX.TRUE)(X~Y))⊃(∀X U.FLAT(X,U)=FLATTEN(X)*U)
deps: NIL
* 17. (∀X.TRUE)∧
(∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(λX.TRUE)(X~Y))⊃(∀X U.FLAT(X,U)=FLATTEN(X)*U)
deps: NIL
* 18. (∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(λX.TRUE)(X~Y))⊃(∀X U.FLAT(X,U)=FLATTEN(X)*U)
deps: NIL
* 19. (∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(λX.TRUE)(X~Y))⊃(∀X U.FLAT(X,U)=FLATTEN(X)*U)
deps: NIL
* 20. (∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
(λX.TRUE)(X~Y))⊃(∀X U.FLAT(X,U)=FLATTEN(X)*U)
deps: NIL
* 21. (∀X.ATOM X⊃(∀U.LISTP IF ATOM X THEN X~U ELSE FLAT(CAR X,FLAT(CDR X,U))))∧
(∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y))⊃
(∀X U.LISTP FLAT(X,U))
deps: NIL
* 22. (∀X.ATOM X⊃(∀U.LISTP X~U))∧
(∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y))⊃
(∀X U.LISTP FLAT(X,U))
deps: NIL
* 23. (∀X.TRUE)∧(∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y))⊃
(∀X U.LISTP FLAT(X,U))
deps: NIL
* 24. (∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y))⊃
(∀X U.LISTP FLAT(X,U))
deps: NIL
* 25. (∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y))⊃
(∀X U.LISTP FLAT(X,U))
deps: NIL
* 26. (∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y))⊃
(∀X U.LISTP FLAT(X,U))
deps: NIL
* 27. (∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y))⊃
(∀X U.LISTP FLAT(X,U))
deps: NIL
* failed to derive
∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y)
cannot prove the following:
(∀U.LISTP FLAT(Y18,U))∧(∀U.LISTP FLAT(X41,U))⊃(λX.TRUE)(X41~Y18)
*
;;;
(wipe-out)
(get-proofs lispax)
(proof flat)
(context lispax#1:*)
;;; flat(x,u) has an imbedded call which makes proofs more difficult.
(decl (flat) |ground⊗ground→ground| constant)
(axiom |∀x u.flat(x,u) = if atom x then x~u else flat(car x,flat(cdr x, u))|)
(lname definfo)
(decl (flatten) |ground → ground| constant)
(axiom |∀x.flatten(x) = if atom x then list(x)
else flatten(car x)*flatten(cdr x)|)
(lname definfo)
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo**sortinfo))*nil*([1#2#1#2]($definfo**sortinfo))
**simpinfo*nil*([1](der))*nil|
sortinfo)
failed to derive
∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y)
cannot prove the following:
(∀U.LISTP FLAT(Y18,U))∧(∀U.LISTP FLAT(X41,U))⊃(λX.TRUE)(X41~Y18)
*
28. (∀X Y.(∀U.LISTP FLAT(X,U))∧(∀U.LISTP FLAT(Y,U))⊃(λX.TRUE)(X~Y))⊃
(∀X U.LISTP FLAT(X,U))
deps: NIL
*
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo**sortinfo))*nil*([1#2#1#2]($definfo**sortinfo))
**simpinfo*nil|
sortinfo)
(∀e phi |λx.listp flatten(x)| sexpinduction
|nil*([1#1#1]($definfo*nil**simpinfo*nil))*nil
*([1#1#2](&definfo*nil**simpinfo*nil))*([1#1](imp(listappend)*der))*nil|
sortinfo)
(lname listpflatten)
(∀e phi |λx.∀u.flat(x,u)=flatten(x)*u| sexpinduction
|nil*([1#1#1](&definfo*nil*$definfo**simpinfo*nil))*nil
*([1#1#2](&definfo**simpinfo*nil))|
listpflatten sortinfo)
(assume |(∀u.flat(x,u)=flatten(x)*u)∧(∀u.flat(y,u)=flatten(y)*u)|)
(trw |flat(x,flat(y,u))| |*-1| listpflatten sortinfo)
(∀i u)
(ci -3 -1)
(∀i (x y))
(trw |∀x u.flat(x,u) = flatten(x)*u| |imp(-6,-1)*taut|)
(∀e phi |λx.∀u.flat(x,u)=flatten(x)*u| sexpinduction
|nil|
listpflatten sortinfo)
(∀e phi |λx.∀u.flat(x,u)=flatten(x)*u| sexpinduction
|nil*([1#1#1](&definfo*$simpinfo*nil))|
listpflatten sortinfo)
(∀e phi |λx.∀u.flat(x,u)=flatten(x)*u| sexpinduction
|nil*([1#1#1](&definfo*$simpinfo*nil*$definfo*nil))|
listpflatten sortinfo)
(∀e phi |λx.∀u.flat(x,u)=flatten(x)*u| sexpinduction
|nil*([1#1#1](&definfo*$simpinfo*nil*$definfo**simpinfo*nil))|
listpflatten sortinfo)
(∀e phi |λx.∀u.flat(x,u)=flatten(x)*u| sexpinduction
|nil*([1#1#1](&definfo*$simpinfo*nil*$definfo**simpinfo*nil))*nil|
listpflatten sortinfo)
(∀e phi |λx.∀u.flat(x,u)=flatten(x)*u| sexpinduction
|nil*([1#1#1](&definfo*nil*$definfo**simpinfo*nil))*nil|
listpflatten sortinfo)
(∀e phi |λx.∀u.flat(x,u)=flatten(x)*u| sexpinduction
|nil*([1#1#1](&definfo*nil*$definfo**simpinfo*nil))*nil
*([1#1#2](&definfo**simpinfo))|
listpflatten sortinfo)
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo**sortinfo))|
sortinfo)
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo**sortinfo*nil))|
sortinfo)
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo*nil**sortinfo*nil))|
sortinfo)
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo*nil**sortinfo*nil))*nil|
sortinfo)
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo*nil**sortinfo*nil))*nil
*([1#1#2]($definfo*nil*sortinfo*nil))|
sortinfo)
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo*nil**sortinfo*nil))*nil
*([1#1#2]($definfo*nil*sortinfo*nil))*nil|
sortinfo)
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo*nil**sortinfo*nil))*nil
*([1#1#2]($definfo*nil*sortinfo*nil))*sortinfo*nil|
sortinfo)
;;;;
(∀E PHI |λX.∀U.LISTP FLAT(X,U)| sexpinduction
|nil*([1#1#1]($definfo**sortinfo))*nil*([1#2#1#2]($definfo**sortinfo))
**simpinfo*nil*([1](der))*nil|
sortinfo)